DLL-conscious instruction fetch optimization for SMT processors

نویسندگان

  • Fayez Mohamood
  • Mrinmoy Ghosh
  • Hsien-Hsin S. Lee
چکیده

ACKNOWLEDGEMENTS There are many who have given me inspiration, guidance and provided me with professional and personal support. First of all, I would like to extend my heartfelt thanks to my parents for the unwavering support they provided me in every way possible, in order to enable me reach both educational and personal goals. I would also like to thank my brothers, for always being there whenever I needed their support. My family has been a critical part of my educational endeavors and their efforts will always be appreciated and remembered. I would like to extend my appreciation to my advisor Dr. Hsien-Hsin Sean Lee for his strong support throughout the time I have worked with him and for helping me understand that there is always room for realizing higher potential in myself. My sincere thanks also goes to Dr. Sung Kyu Lim and Dr. Sudhakar Yalamanchili for serving on my thesis committee. In addition, I would also like to thank Mrinmoy Ghosh for providing me with valuable advice and suggestions to improve my work. I would also like to thank everyone in the MARS (Microprocessor Architecture Research Society) group who have provided a stimulating environment to learn many things and foster new ideas. Last but not the least, I would like to extend my gratitude to many friends in my classes and outside, who have all influenced me in a constructive manner. SUMMARY Simultaneous multithreading (SMT) processors can issue multiple instructions from distinct processes or threads in the same cycle. This technique effectively increases the overall throughput by keeping the pipeline resources more occupied at the potential expense of reducing single thread performance due to resource sharing. In the software domain, an increasing number of Dynamically Linked Libraries (DLL) are used by applications and operating systems, providing better flexibility and modularity, and enabling code sharing. It is observed that a significant amount of execution time in software today is spent in executing standard DLL instructions, that are shared among multiple threads or processes. However, for an SMT processor with a virtually-indexed based cache implementation, existing instruction fetching mechanisms can induce unnecessary false cache misses caused by the DLL-based instructions, which were intended to be shared. This problem is more conspicuous when multiple independent threads are executing concurrently inside an SMT processor. This work investigates an often-neglected form of contention between running threads in the I-TLB and I-cache caused by …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Boosting SMT Performance by Speculation Control

Simultaneous Multithreading (SMT) is a technique that permits multiple threads to execute in parallel within a single processor. Usually, an SMT processor uses shared instruction queues to collect instructions from the different threads. Hence, an SMT processor’s performance depends on how the instruction fetch unit fills these instruction queues. On each cycle the fetch unit must judiciously d...

متن کامل

ABSTRACT Title of thesis: STRATEGIES FOR ENHANCING THROUGHPUT AND FAIRNESS IN SMT PROCESSORS

Title of thesis: STRATEGIES FOR ENHANCING THROUGHPUT AND FAIRNESS IN SMT PROCESSORS Chungsoo Lim, Master of Science, 2004 Thesis directed by: Professor Manoj Franklin Department of Electrical and Computer Engineering Simultaneous Multithreading (SMT) is a technique to execute multiple threads in parallel in a single processor pipeline. An SMT processor has shared instruction queues and function...

متن کامل

Improving Memory Latency Aware Fetch Policies for SMT Processors

In SMT processors several threads run simultaneously to increase available ILP, sharing but competing for resources. The instruction fetch policy plays a key role, determining how shared resources are allocated. When a thread experiences an L2 miss, critical resources can be monopolized for a long time choking the execution of the remaining threads. A primary task of the instruction fetch polic...

متن کامل

Approaching a Smart Sharing of Resources in SMT Processors

SMT processors increase performance by executing instructions from several threads simultaneously. These threads use the processor’s resources better by sharing them, but, at the same time, threads are competing for these resources. The way critical resources are distributed among threads determines the final throughput and also the performance of each individual thread. Currently, the processo...

متن کامل

Optimising long-latency-load-aware fetch policies for SMT processors

Simultaneous Multithreading (SMT) processors fetch instructions from several threads and, in this way, the available Instruction Level Parallelism (ILP) of each thread is exposed to the processor. In an SMT processor the fetch engine has the additional level of freedom, compared to a super-scalar processor, to select independent instructions. The fetch engine determines how shared resources are...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Journal of Systems Architecture - Embedded Systems Design

دوره 54  شماره 

صفحات  -

تاریخ انتشار 2008